<%@ page import="com.day240701.entity.Student" %>
<%@ page import="com.day240701.entity.Admin" %>
<%@ page import="java.util.ArrayList" %>
<%@ page import="java.util.List" %><%--
  Created by IntelliJ IDEA.
  User: 王文尧
  Date: 2024/7/10
  Time: 13:11
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
  <%-- 保存在作用域对象中的数据是 对象（包括 实体类对象 集合 数组 等等...） --%>
  <%
    Student my = new Student(1, "wwy", "123", "男", 18, null);
    request.setAttribute("my", my);
  %>
  <%-- 普通 java 代码获得对象 --%>
  <%
    // 获得数据（Object类型），然后向下转型
    Student stu = (Student) request.getAttribute("my");
  %>
  <hr/>
  学生信息：<%--然后才能使用它的属性--%>
  <%=stu.getSNo() + "-" + stu.getSName() + "-" + stu.getPassword() + "-" + stu.getSex() + "-" + stu.getAge()%>
  <hr/>
  学生信息：${my}
  <hr/>
  <%-- 直接可以通过属性名 获得数据，前提是 我们的对象必须符合 javabean规则（封装 属性私有，提供公共的getSet方法，并且是驼峰式写法）  --%>
  学生信息：${my.SNo}-${my.SName}-${my.password}-${my.sex}-${my.age}
  <hr/>
  <%-- 哪些类对象可以直接在EL表达式中使用? --%>
  <%-- 如果admin类没有符合规则，则会报错（找不到指定的属性） --%>
  <%
    Admin admin = new Admin();
    admin.aNo = 1;
    admin.aName = "admin";
    request.setAttribute("admin", admin);
  %>

  ${admin}
  <hr/>
  <%-- javax.el.PropertyNotFoundException: 在类型 [com.day240701.entity.Admin] 上未找到属性 [aNo] --%>
  ${admin.ANo}-${admin.AName}

  <%-- 如果得到的数据 是数组或集合 怎么处理？先不用 jstl 知识点 --%>

  <hr/>
  <%
    // 数组
    String[] arr = new String[]{"zhw", "bai", "hei", "song"};
    request.setAttribute("arr", arr);

    // 集合
    List<String> list = new ArrayList<>();
    list.add("zhw2");
    list.add("bai2");
    list.add("hei2");
    request.setAttribute("list", list);

    // 集合 - 存引用类型（对象）
    List<Admin> aList = new ArrayList<>();
    aList.add(new Admin(1, "zhw3"));
    request.setAttribute("aList", aList);

  %>
  ${arr}
<hr/>
  ${arr[0]}
  <hr/>
  ${list[0]}
  <%-- 遍历的话需要后续的 jstl 知识点完成 --%>
  <hr/>
  ${aList[0]}


</body>
</html>
